package br.ucb.rastreador.negocio.impl;

import br.ucb.rastreador.modelo.persistencia.DaoFactory;
import br.ucb.rastreador.negocio.BoFactory;
import br.ucb.rastreador.negocio.CasoTesteBo;
import br.ucb.rastreador.negocio.CasoUsoBo;
import br.ucb.rastreador.negocio.ExecucaoCasoTesteBo;
import br.ucb.rastreador.negocio.FluxoBo;
import br.ucb.rastreador.negocio.PassoBo;
import br.ucb.rastreador.negocio.PassoCasoTesteBo;
import br.ucb.rastreador.negocio.RastroExecucaoBo;

/**
 *  Classe que implementa uma factory de Bos que retorna a implementacao especifica.
 *  
 * @author Frederico Spohr
 * @version 1.0 
 */
public class BoFactoryImpl extends BoFactory {

	/* (non-Javadoc)
	 * @see br.ucb.rastreador.modelo.negocio.BoFactory#getCasoUsoBo()
	 */
	@Override
	public CasoUsoBo getCasoUsoBo() {
		return new CasoUsoBoImpl(DaoFactory.getFactory().getCasoUsoDao());
	}

	/* (non-Javadoc)
	 * @see br.ucb.rastreador.modelo.negocio.BoFactory#getCasoTesteBo()
	 */
	@Override
	public CasoTesteBo getCasoTesteBo() {		
		return new CasoTesteBoImpl(DaoFactory.getFactory().getCasoTesteDao());
	}

	/* (non-Javadoc)
	 * @see br.ucb.rastreador.modelo.negocio.BoFactory#getExecucaoCasoTesteBo()
	 */
	@Override
	public ExecucaoCasoTesteBo getExecucaoCasoTesteBo() {
		return new ExcecucaoCasoTesteBoImpl(DaoFactory.getFactory().getExecucaoCasoTesteDao());
	}

	/* (non-Javadoc)
	 * @see br.ucb.rastreador.modelo.negocio.BoFactory#getFluxoBo()
	 */
	@Override
	public FluxoBo getFluxoBo() {
		return new FluxoBoImpl(DaoFactory.getFactory().getFluxoDao());
	}

	/* (non-Javadoc)
	 * @see br.ucb.rastreador.modelo.negocio.BoFactory#getPassoBo()
	 */
	@Override
	public PassoBo getPassoBo() {	
		return new PassoBoImpl(DaoFactory.getFactory().getPassoDao());
	}

	/* (non-Javadoc)
	 * @see br.ucb.rastreador.modelo.negocio.BoFactory#getPassoCasoTesteBo()
	 */
	@Override
	public PassoCasoTesteBo getPassoCasoTesteBo() {
		return new PassoCasoTesteBoImpl(DaoFactory.getFactory().getPassoCasoTesteDao());
	}

	/* (non-Javadoc)
	 * @see br.ucb.rastreador.modelo.negocio.BoFactory#getRastroExecucaoBo()
	 */
	@Override
	public RastroExecucaoBo getRastroExecucaoBo() {
		return new RastroExecucaoBoImpl(DaoFactory.getFactory().getRastroExecucaoDao());
	}
}